WOLF core
WOLF: A Modular Estimation Framework for Robotics
XXXXXXXXXXXXXXXXXXXXXXXXvoid(0)" frameborder="0" name="MSearchResults" id="MSearchResults">
rotations.h File Reference
#include "core/common/wolf.h"

Go to the source code of this file.

Namespaces

namespace  wolf
 

Functions

template<typename T >
T wolf::pi2pi (const T &_angle)
 Return angle between -pi and pi This implementation uses std::remainder which makes it incompatible for autodiff::Jet (this implementation was included in math/autodiff/wolf_jet.h) More...
 
template<typename T >
T wolf::toRad (const T deg)
 Conversion to radians. More...
 
template<typename T >
T wolf::toDeg (const T rad)
 Conversion to degrees. More...
 
template<typename Derived >
Eigen::Matrix< typename Derived::Scalar, 3, 3 > wolf::skew (const Eigen::MatrixBase< Derived > &_v)
 Skew symmetric matrix. More...
 
template<typename Derived >
Eigen::Matrix< typename Derived::Scalar, 3, 1 > wolf::vee (const Eigen::MatrixBase< Derived > &_m)
 Inverse of skew symmetric matrix. More...
 
template<typename Derived >
Eigen::Matrix< typename Derived::Scalar, 3, 3 > wolf::q2R (const Eigen::QuaternionBase< Derived > &_q)
 quaternion to rotation matrix conversion More...
 
template<typename Derived >
Eigen::Matrix< typename Derived::Scalar, 3, 3 > wolf::q2R (const Eigen::MatrixBase< Derived > &_q)
 quaternion to rotation matrix conversion More...
 
template<typename Derived >
Eigen::Quaternion< typename Derived::Scalar > wolf::R2q (const Eigen::MatrixBase< Derived > &_R)
 rotation matrix to quaternion conversion More...
 
template<typename D >
Eigen::Quaternion< typename D::Scalar > wolf::e2q (const Eigen::MatrixBase< D > &_euler)
 Euler angles to quaternion. More...
 
template<typename Derived >
Eigen::Matrix< typename Derived::Scalar, 3, 3 > wolf::e2R (const Eigen::MatrixBase< Derived > &_e)
 Euler angles to rotation matrix. More...
 
template<typename Derived >
Eigen::Matrix< typename Derived::Scalar, 3, 1 > wolf::R2e (const Eigen::MatrixBase< Derived > &_R)
 
template<typename Derived >
Eigen::Matrix< typename Derived::Scalar, 3, 1 > wolf::q2e (const Eigen::MatrixBase< Derived > &_q)
 
template<typename Derived >
Eigen::Matrix< typename Derived::Scalar, 3, 1 > wolf::q2e (const Eigen::QuaternionBase< Derived > &_q)
 
template<typename Derived >
Eigen::MatrixBase< Derived >::Scalar wolf::getYaw (const Eigen::MatrixBase< Derived > &_M)
 
template<typename Derived >
Eigen::QuaternionBase< Derived >::Scalar wolf::getYaw (const Eigen::QuaternionBase< Derived > &_q)
 
template<typename Derived >
Eigen::Quaternion< typename Derived::Scalar > wolf::exp_q (const Eigen::MatrixBase< Derived > &_v)
 Quaternion exponential map. More...
 
template<typename Derived >
Eigen::Matrix< typename Derived::Scalar, 3, 1 > wolf::log_q (const Eigen::QuaternionBase< Derived > &_q)
 Quaternion logarithmic map. More...
 
template<typename Derived >
Eigen::Matrix< typename Derived::Scalar, 3, 3 > wolf::exp_R (const Eigen::MatrixBase< Derived > &_v)
 Rotation matrix exponential map. More...
 
template<typename Derived >
Eigen::Matrix< typename Derived::Scalar, 3, 1 > wolf::log_R (const Eigen::MatrixBase< Derived > &_R)
 Rotation matrix logarithmic map. More...
 
template<typename Derived >
Eigen::Quaternion< typename Derived::Scalar > wolf::v2q (const Eigen::MatrixBase< Derived > &_v)
 Rotation vector to quaternion conversion. More...
 
template<typename Derived >
Eigen::Matrix< typename Derived::Scalar, 3, 1 > wolf::q2v (const Eigen::QuaternionBase< Derived > &_q)
 Quaternion to rotation vector conversion. More...
 
template<typename Derived >
Eigen::Matrix< typename Derived::Scalar, 3, 3 > wolf::v2R (const Eigen::MatrixBase< Derived > &_v)
 Rotation vector to rotation matrix conversion. More...
 
template<typename Derived >
Eigen::Matrix< typename Derived::Scalar, 3, 1 > wolf::R2v (const Eigen::MatrixBase< Derived > &_R)
 Rotation matrix to rotation vector conversion. More...
 
template<typename Derived >
Eigen::Matrix< typename Derived::Scalar, 3, 3 > wolf::jac_SO3_right (const Eigen::MatrixBase< Derived > &_theta)
 Compute Jr (Right Jacobian) Right Jacobian for exp map in SO(3) - equation (10.86) and following equations in G.S. Chirikjian, "Stochastic Models, Information Theory, and Lie Groups", Volume 2, 2008. More...
 
template<typename Derived >
Eigen::Matrix< typename Derived::Scalar, 3, 3 > wolf::jac_SO3_right_inv (const Eigen::MatrixBase< Derived > &_theta)
 Compute Jrinv (inverse of Right Jacobian which corresponds to the jacobian of log) Right Jacobian for Log map in SO(3) - equation (10.86) and following equations in G.S. Chirikjian, "Stochastic Models, Information Theory, and Lie Groups", Volume 2, 2008. More...
 
template<typename Derived >
Eigen::Matrix< typename Derived::Scalar, 3, 3 > wolf::jac_SO3_left (const Eigen::MatrixBase< Derived > &_theta)
 Compute Jl (Left Jacobian) Left Jacobian for exp map in SO(3) - equation (10.86) and following equations in G.S. Chirikjian, "Stochastic Models, Information Theory, and Lie Groups", Volume 2, 2008. More...
 
template<typename Derived >
Eigen::Matrix< typename Derived::Scalar, 3, 3 > wolf::jac_SO3_left_inv (const Eigen::MatrixBase< Derived > &_theta)
 Compute Jl_inv (inverse of Left Jacobian which corresponds to the jacobian of log) Left Jacobian for Log map in SO(3) - equation (10.86) and following equations in G.S. Chirikjian, "Stochastic Models, Information Theory, and Lie Groups", Volume 2, 2008. More...
 
template<typename D1 , typename D2 , typename D3 , typename D4 , typename D5 >
void wolf::compose (const Eigen::QuaternionBase< D1 > &_q1, const Eigen::QuaternionBase< D2 > &_q2, Eigen::QuaternionBase< D3 > &_q_comp, Eigen::MatrixBase< D4 > &_J_comp_q1, Eigen::MatrixBase< D5 > &_J_comp_q2)
 
template<typename D1 , typename D2 , typename D3 , typename D4 , typename D5 >
void wolf::between (const Eigen::QuaternionBase< D1 > &_q1, const Eigen::QuaternionBase< D2 > &_q2, Eigen::QuaternionBase< D3 > &_q_between, Eigen::MatrixBase< D4 > &_J_between_q1, Eigen::MatrixBase< D5 > &_J_between_q2)
 
template<typename D1 , typename D2 >
Eigen::Quaternion< typename D1::Scalar > wolf::plus_right (const Eigen::QuaternionBase< D1 > &q, const Eigen::MatrixBase< D2 > &v)
 
template<typename D1 , typename D2 >
Eigen::Matrix< typename D2::Scalar, 3, 1 > wolf::minus_right (const Eigen::QuaternionBase< D1 > &q1, const Eigen::QuaternionBase< D2 > &q2)
 
template<typename D1 , typename D2 >
Eigen::Quaternion< typename D1::Scalar > wolf::plus_left (const Eigen::MatrixBase< D2 > &v, const Eigen::QuaternionBase< D1 > &q)
 
template<typename D1 , typename D2 >
Eigen::Matrix< typename D2::Scalar, 3, 1 > wolf::minus_left (const Eigen::QuaternionBase< D1 > &q1, const Eigen::QuaternionBase< D2 > &q2)
 
template<typename D1 , typename D2 >
Eigen::Quaternion< typename D1::Scalar > wolf::plus (const Eigen::QuaternionBase< D1 > &q, const Eigen::MatrixBase< D2 > &v)
 
template<typename D1 , typename D2 >
Eigen::Matrix< typename D2::Scalar, 3, 1 > wolf::minus (const Eigen::QuaternionBase< D1 > &q1, const Eigen::QuaternionBase< D2 > &q2)
 
template<typename D1 , typename D2 >
Eigen::Matrix< typename D2::Scalar, 3, 1 > wolf::diff (const Eigen::QuaternionBase< D1 > &q1, const Eigen::QuaternionBase< D2 > &q2)